﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using LHS.Core.TableInfo;
using System.Collections.Specialized;
using MS.Core.Constants.Objects;

namespace LHS.Win
{
    public partial class frmCapNhatQuyen : Form
    {
        LHS.Core.Authority.AuthorityController objController = new LHS.Core.Authority.AuthorityController();
        // Methods
        public frmCapNhatQuyen()
        {
            this.InitializeComponent();
        }

        private void btExit_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void btSave_Click(object sender, EventArgs e)
        {
            if (this.cbQuyen.Text == "")
            {
                MessageBox.Show("Vui lòng chọn quyền!", "Lỗi nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else
            {
                int num;
                if (this.cbQuyen.Text == "Trưởng Phòng Khám")
                {
                    num = 0;
                }
                else if (this.cbQuyen.Text == "Bác Sĩ")
                {
                    num = 1;
                }
                else if (this.cbQuyen.Text == "Y Tá (Tiếp Tân)")
                {
                    num = 2;
                }
                else
                {
                    num = 3;
                }

                try
                {
                    ListDictionary updateField = new ListDictionary();
                    updateField.Add(InfoUsers.ROLISN, num);
                    List<ExpressionObject> param = new List<ExpressionObject>();
                    param.Add(new ExpressionObject(InfoUsers.USRNAME, this.tbUserName.Text));
                    objController.UpdateRow(InfoUsers.TABLENAME, updateField, param);

                    MessageBox.Show("Cập nhật thành công!", "Cập nhật thành công!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.tbUserName.Text = "";
                    this.tbUserName.Enabled = true;
                    this.btSearch.Enabled = true;
                    this.btSave.Enabled = false;
                    this.btXoa.Enabled = false;
                    this.tbUserName.Focus();
                }
                catch (Exception ex)
                {
                    Class.ShowException(ex);
                }
            }
        }

        private void btSearch_Click(object sender, EventArgs e)
        {
            if (this.tbUserName.Text == "")
            {
                MessageBox.Show("Vui lòng nhập tên đăng nhập!", "Lỗi nhập!", MessageBoxButtons.OK, MessageBoxIcon.Hand);
            }
            else
            {
                try
                {
                    ListDictionary param = new ListDictionary();
                    param.Add(InfoUsers.USRNAME, this.tbUserName.Text);
                    object intUserISN = objController.GetScalar(InfoUsers.USRISN, param, InfoUsers.TABLENAME);
                    if (intUserISN is int && (int)intUserISN > 0)
                    {

                        if (MessageBox.Show("Tên truy nhập: " + this.tbUserName.Text + " được tìm thấy.\n Bạn có muốn thay đổi quyền cho user này không?", "Thay đổi quyền!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            this.tbUserName.Enabled = false;
                            this.btSave.Enabled = true;
                            this.btXoa.Enabled = true;
                            this.btSearch.Enabled = false;
                        }
                    }
                    else
                    {
                        this.btSave.Enabled = false;
                        this.btXoa.Enabled = false;
                        MessageBox.Show("Tên truy nhập: '" + this.tbUserName.Text + "' không tồn tại!", "Lỗi nhập", MessageBoxButtons.OK, MessageBoxIcon.Hand);
                    }
                }
                catch (Exception ex)
                {
                    Class.ShowException(ex);
                }
            }
        }

        private void btXoa_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Có phải bạn muốn xóa quyền truy nhập: '" + this.tbUserName.Text.ToString() + "' này không?", "Xóa Quyền Truy Nhập", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    List<ExpressionObject> param = new List<ExpressionObject>();
                    param.Add(new ExpressionObject(InfoUsers.USRNAME,this.tbUserName.Text));
                    objController.DeleteRow(InfoUsers.TABLENAME, param);

                    MessageBox.Show("Quyền truy nhập đã được xóa!", "Xóa Quyền Truy Nhập!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    this.tbUserName.Text = "";
                    this.tbUserName.Enabled = true;
                    this.btSearch.Enabled = true;
                    this.btSave.Enabled = false;
                    this.btXoa.Enabled = false;
                    this.tbUserName.Focus();
                 }
                catch (Exception ex)
                {
                    Class.ShowException(ex);
                }
            }
        }
        private void tbUserName_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == '\r')
            {
                this.btSearch_Click(sender, e);
            }
        }

    }
}